package interfaces;

import utilidades.Vector;
import fantasma.Fantasma;
import fantasma.tipos.FantasmaBuscadorTemperamental;
import fantasma.tipos.FantasmaPerezoso;

public interface IEstado {

	public void interactuarCon(IPacman pacman);
	
	public void transicionAMuerto();

	public void transicionAPresa();

	public void actualizarEstado();	

	public void moverComoBuscador(Fantasma fantasma, IPacman pacman);
	
	public void moverComoBuscadorTemperamental(FantasmaBuscadorTemperamental fantasma,IPacman pacman);
	
	public void moverComoPerezoso(FantasmaPerezoso fantasma,IPacman pacman);
	
	public void moverComoZonzo(Fantasma fantasma,IPacman pacman);

	public String obtenerEstadoEnTexto();

	public String obtenerDireccionEnTexto();

	public Vector obtenerDireccion();

	public int obtenerIra();
	
	// necesario para la vista solamente
	public boolean estaMuerto();
	public boolean esPresa();

	public Vector obtenerUltimaDireccion();

}
